import networkx as nx

## TRANSFORMA DECIMAL PARA BINARIO
def decToBin(n):
	return int(bin(n)[2:])

## ADICIONA O SINAL AOS NUMEROS
def filter(value):
	#return value;
	if(value<1):
		return -1
	else:
		return +1

#QUANTIDADE DE INPUTS		
input_num = 3
## GERA UM GRAFO COMPLETO COM A
## QUANTIDADE DE LINHAS DA TABELA VERDADE
G = nx.complete_graph(pow(2,input_num))
P = G.to_directed()

## ADICIONA OS LACOS
for i in range(0,input_num):
	P.add_edge(i,i)

## PARA CADA VERTICE DO CIRCUITO EULERIANO	
for i in list(nx.eulerian_circuit(P)):
	#OBTEM O BINARIO DELE
    value = str(decToBin(i[1])).zfill(input_num)
    print filter(int(value[0])),filter(int(value[1])),filter(int(value[2])),filter( (int(value[0]) & ~int(value[2]) ) | ( int(value[1]) & int(value[2]) ) )
